//
//  vec3f.h
//  
//
//  Created by Gallienne Kevin on 03/10/13.
//
//

#ifndef ____vec3f__
#define ____vec3f__

#include <iostream>

class vec3f{
public:
    vec3f(float a = 0, float b = 0, float c = 0);
    vec3f(const vec3f&);
    const float& getX() const;
    const float& getY() const;
    const float& getZ() const;
    float* getData();
    void setX(float);
    void setY(float);
    void setZ(float);
    float& x();
    float& y();
    float& z();
    vec3f operator+(const vec3f&);
    vec3f operator-(const vec3f&);
    vec3f operator*(const float);
    vec3f operator/(const float);
    const float& operator[](const int) const;

 private:
   float _data[3]; 
};

    std::ostream& operator<<(std::ostream &output, vec3f a);

#endif /* defined(____vec3f__) */
